Skip to content

feat(assets): add animation graph inspector API - #899

Open
Changdw wants to merge 3 commits into
cocos:mainfrom
Changdw:feature/animation-graph-inspector
Open

feat(assets): add animation graph inspector API#899
Changdw wants to merge 3 commits into
cocos:mainfrom
Changdw:feature/animation-graph-inspector

Conversation

@Changdw

@Changdw Changdw commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

变更说明

为 Pink Animation Graph Inspector 提供 cocos-cli 侧完整 V1 能力:

  • 新增 Assets.animationGraph API:
    • query
    • queryInspector
    • setInspectorProperty
    • execute
    • save
    • reload
    • onChanged
  • 支持 Layer、State、Transition、Motion、Pose Node/Input、Component、Variable、Stash。
  • 提供统一 IProperty dump、getter/setter 和属性校验。
  • 每个 Graph 维护唯一工作副本,通过 documentId + revision 防止脏写。
  • 使用显式保存,并检测源文件及 AssetDB 外部修改。
  • 通用资产写入会拒绝覆盖未保存的 Graph。
  • 修复普通文件预检误调用 queryAssets() 以及跨 DB 错误锁定问题。

@Changdw Changdw closed this Sep 1, 2026
@Changdw Changdw reopened this Sep 1, 2026
@Changdw

Changdw commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

概要

补齐 Animation Graph Inspector 的属性级 Reset/Create 能力,并保持与 Creator Scene 的属性语义一致。

  • 新增 Assets.animationGraph.resetInspectorProperty() / createInspectorProperty()
  • 新增 AnimationGraphInspectorPropertyOperationRequest
  • Inspector snapshot 增加可选 propertyCapabilities
  • 新增 UNSUPPORTED_PROPERTY_OPERATION 错误码
  • 更新 SDK DTS snapshot

实现说明

  • set/reset/create 统一进入现有 Graph document mutation 管线,复用:
    • per-asset 串行队列
    • documentId + revision 校验
    • 源文件指纹检查
    • clone-then-commit
    • dirty / revision / changed event 更新
  • Reset/Create 从当前引擎实例或 Graph adapter 重新解析属性规则,不信任前端传入的 defaultctor 或完整 JSON。
  • Reset 对齐 Creator:
    • 支持默认值工厂
    • cloneable 默认对象调用 clone()
    • 数组默认值归一为 []
  • Create 先执行 Reset;结果仍为 null/undefined 时,使用受信任的 attr.ctor 创建实例。
  • readonly、hidden,以及没有对应默认规则的属性会被明确拒绝;无实际变化的操作不增加 revision。
  • Pose input 保持通过专用语义写入,不绕过其 Graph API。

@Changdw
Changdw requested a review from star-e September 2, 2026 06:19
@Changdw

Changdw commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author
  • State、Blend、Transition 真实字段查询。
  • 未连接 Pose input 的 IProperty value。
  • stash-pose-graph 与 Motion editorData 写回。
  • __editorExtras__ 在加载、修改、保存、重载链路中的保真。
  • 公共类型及 DTS snapshot 更新。
  • stash-pose-graph 成功后清理迁出节点的旧 nodeIds/nodesById 映射,避免失效节点被长期强引用。
  • editor extras 临时注册从注册阶段开始纳入异常保护;__deserialize____values____props__ 会逐项恢复,单项恢复失败不会阻断其他状态恢复,同时保留原始操作异常。
  • 补充对应回归测试,验证旧节点 ID 失效、注册中途失败不污染引擎类状态且 Graph revision 不变。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant